﻿using System;
using System.ComponentModel;
using System.Windows.Forms;
using Sheeter.Library.Dal;
using Sheeter.Library.Model;
using System.Collections.Generic;
using DevExpress.XtraEditors;

namespace Sheeter.App
{
    public partial class UscAntecedentes : UserControl
    {
        string nome = String.Empty;
        List<AntecedenteInfo> lista;
        //
        public UscAntecedentes()
        {
            InitializeComponent();
            lista = AntecedentesMacDal.GetAll();
            leNome.DataSource = lista;
            leNome.DisplayMember = "Nome";
            leNome.ValueMember = "Nome";
        }

        private void grdAntecedentes_Load(object sender, EventArgs e)
        {
            //A implementar
            //if (ParentForm.Controls[0].Controls[0].Name.Equals("UscMac"))
            //{
            //    //
            //}
        }

        private bool FindByName(AntecedenteInfo antecedenteInfo)
        {
            return antecedenteInfo.Nome.Equals(nome);
        }

        private void leNome_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
        {
            LookUpEdit edit = sender as LookUpEdit;
            nome = edit.Properties.GetDisplayValueByKeyValue(e.NewValue).ToString();
            if (!nivelAntecedentesInfoBindingSource.Contains(nome))
            {
                var res = lista.Find(FindByName);
                txtAntecedentes.Text = res.Descricao;
            }
        }

        private void nivelAntecedentesInfoBindingSource_PositionChanged_1(object sender, EventArgs e)
        {
            nome = (nivelAntecedentesInfoBindingSource.Current as NivelAntecedentesInfo).Nome;
            var res = lista.Find(FindByName);
            if (!String.IsNullOrEmpty(nome))
                txtAntecedentes.Text = res.Descricao;
        }

        private void grdAntecedentes_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode.Equals(Keys.Delete) && (nivelAntecedentesInfoBindingSource.Current != null))
            {
                nivelAntecedentesInfoBindingSource.RemoveCurrent();
            }
        }

        private void nivelAntecedentesInfoBindingSource_AddingNew(object sender, AddingNewEventArgs e)
        {
            //if (nivelAntecedentesInfoBindingSource.Count > 4)
            //{
            //    MessageBox.Show("Você atingiu o máximo de antecedentes permitidos. Altere algum existente para atender sua necessidade!");

            //}
        }

        private void grdAntecedentes_Validated(object sender, EventArgs e)
        { }
    }
}
